Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

3.6K
Visualizações
No puedo ejecutar mi proyecto TypeScript de Node.js TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Extensión de archivo desconocida ".ts" para /app/src/App.ts

Cuando intento iniciar mi aplicación en Heroku, obtuve el siguiente seguimiento de pila. Es solo una ts.app básica como la que ves con ts-node y nodemon. Si necesita más información, solo dígame eso porque es mi primera publicación. Estoy realmente interesado en cuál va a ser la respuesta.

 2020-05-30T00:03:12.201106+00:00 heroku[web.1]: Starting process with command `npm start` 2020-05-30T00:03:14.405285+00:00 app[web.1]: 2020-05-30T00:03:14.405303+00:00 app[web.1]: > discordtoornamentmanager@1.0.0 start /app 2020-05-30T00:03:14.405303+00:00 app[web.1]: > ts-node src/App.ts 2020-05-30T00:03:14.405304+00:00 app[web.1]: 2020-05-30T00:03:14.833655+00:00 app[web.1]: (node:23) ExperimentalWarning: The ESM module loader is experimental. 2020-05-30T00:03:14.839311+00:00 app[web.1]: TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /app/src/App.ts 2020-05-30T00:03:14.839312+00:00 app[web.1]: at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:65:15) 2020-05-30T00:03:14.839314+00:00 app[web.1]: at Loader.getFormat (internal/modules/esm/loader.js:113:42) 2020-05-30T00:03:14.839315+00:00 app[web.1]: at Loader.getModuleJob (internal/modules/esm/loader.js:244:31) 2020-05-30T00:03:14.839315+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:97:5) 2020-05-30T00:03:14.839316+00:00 app[web.1]: at Loader.import (internal/modules/esm/loader.js:178:17) 2020-05-30T00:03:14.847801+00:00 app[web.1]: npm ERR! code ELIFECYCLE 2020-05-30T00:03:14.847998+00:00 app[web.1]: npm ERR! errno 1 2020-05-30T00:03:14.848957+00:00 app[web.1]: npm ERR! discordtoornamentmanager@1.0.0 start: `ts-node src/App.ts` 2020-05-30T00:03:14.849050+00:00 app[web.1]: npm ERR! Exit status 1 2020-05-30T00:03:14.849172+00:00 app[web.1]: npm ERR! 2020-05-30T00:03:14.849254+00:00 app[web.1]: npm ERR! Failed at the discordtoornamentmanager@1.0.0 start script. 2020-05-30T00:03:14.849337+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 2020-05-30T00:03:14.854859+00:00 app[web.1]: 2020-05-30T00:03:14.854998+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 2020-05-30T00:03:14.855069+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2020-05-30T00_03_14_850Z-debug.log 2020-05-30T00:03:14.907689+00:00 heroku[web.1]: Process exited with status 1 2020-05-30T00:03:14.943718+00:00 heroku[web.1]: State changed from starting to crashed

Este es mi paquete.json

 { "name": "discordtoornamentmanager", "version": "1.0.0", "description": "", "main": "dist/app.js", "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "nodemon -x ts-node src/App.ts", "start": "ts-node src/App.ts" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@types/node": "^14.0.5", "axios": "^0.19.2", "discord.js": "^12.2.0", "pg": "^8.2.1", "reflect-metadata": "^0.1.10", "typeorm": "0.2.25", "typescript": "^3.9.3", "nodemon": "^2.0.4", "ts-node": "8.10.1" } }

Y este es mi tsconfig

 { "compilerOptions": { "lib": [ "es6" ], "target": "es6", "module": "commonjs", "moduleResolution": "node", "outDir": "dist", "resolveJsonModule": true, "emitDecoratorMetadata": true, "esModuleInterop": true, "experimentalDecorators": true, "sourceMap": true }, "include": ["src/**/*.ts"], "exclude": ["node_modules", "**/*.spec.ts"] }
over 4 years ago · Santiago Trujillo
16 Respostas
Responde à pergunta

0

Cambié mis importaciones de:

import blah from './modules/blah'

para

import blah from './modules.blah.js'

over 4 years ago · Santiago Trujillo Relatório

0

Me encontré con esto si estoy importando código mecanografiado de una biblioteca de reacción pero para un script de back-end, en este caso pruebas de mocha. Está esperando archivos .ts pero creo que encuentra archivos .tsx.

En mi caso, tuve que mover algunas funciones de los archivos de reacción .tsx al código backend .ts con el que estaba trabajando.

over 4 years ago · Santiago Trujillo Relatório

0

Estaba tratando de ejecutar archivos js y ts en el mismo paquete con "type": "module" usando la sintaxis es6 para importaciones. Siguiendo la respuesta de MysteryCommand, funcionó la instalación del paquete ts-node y la ejecución de archivos ts con node --loader ts-node/esm .

over 4 years ago · Santiago Trujillo Relatório

0

Solución uno

  1. Eliminar "type": "module" de paquete.json si se agrega
  2. En tsconfig.json bajo la propiedad del módulo compilerOptions Set en el módulo CommonJS module: "CommonJS" y moduleResolution: "Node"

Solución dos

si el primero no funcionó, o por alguna razón tiene que mantener el module: "ESNext"

1- Agregue "type": "module" a paquete.json

2- Instalar ts-node npm i -g ts-node

3- Ve a tsconfig.json y agrega lo siguiente:

 { "compilerOptions": { "module": "ESNext", "moduleResolution": "Node", /* ... your props ... */ }, "ts-node": { "esm": true } }

4- Ejecute ts-node fileName.ts

over 4 years ago · Santiago Trujillo Relatório

0

MARZO 2022

USANDO: Nodo 16.6.2, ts-node v 10.7.0

Lo que funcionó para mí fue tener "type": "module" en package.json y agregar

 node --experimental-specifier-resolution=node --loader ts-node/esm ./src/app.ts

tsconfig.json:

 { "compilerOptions": { "module": "ESNext", "esModuleInterop": true, "target": "ESNext", "moduleResolution": "Node", "outDir": "dist", "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "isolatedModules": false, "strict": true, "noImplicitAny": true, "useUnknownInCatchVariables": false, "inlineSourceMap": true }, "ts-node": { "esm": true }, "lib": ["esnext"] }

Créditos a @FelipePlets por la respuesta útil aquí

EDITAR Es posible que desee utilizar una opción que no esnext la siguiente, según los documentos de ts :

El valor especial de ESNext se refiere a la versión más alta que admite su versión de TypeScript. Esta configuración debe usarse con precaución, ya que no significa lo mismo entre diferentes versiones de TypeScript y puede hacer que las actualizaciones sean menos predecibles.

over 4 years ago · Santiago Trujillo Relatório

0

cambiando mi

 "moduleResolution": "node",

para

 "moduleResolution": "Node",

en package.json resolvió esto por mí

over 4 years ago · Santiago Trujillo Relatório

0

Actualización: gracias a algunos mantenedores, el paquete web ahora documenta oficialmente una solución funcional. Solo eche un vistazo a la documentación oficial del paquete web .

La segunda solución es similar a otras respuestas aquí y funciona perfectamente bien en mi caso.

over 4 years ago · Santiago Trujillo Relatório

0

En su paquete.json {Módulo: commonJS}, y tsconfig.json {módulo: commonJS}, a ts-node youname.ts

over 4 years ago · Santiago Trujillo Relatório

0

Agregue esto a tsconfig.json

 { /* ... your props ... */ "ts-node": { "compilerOptions": { "module": "CommonJS" } } }
over 4 years ago · Santiago Trujillo Relatório

0

antes de esto:

node --loader ts-node/esm ./my-script.ts

Tuve que actualizar ssri

npm update ssri --depth 5

over 4 years ago · Santiago Trujillo Relatório

0

Me encontré con este problema por primera vez probablemente hace más de un año, y ts-node aún no lo ha solucionado. Ninguna de las soluciones anteriores funcionó para mí, y aparentemente probé todo.

Simplemente recurrí a usar tsc --outDir out file.ts y luego ejecutar el archivo normalmente con node out/file.js , y luego agregarlo out .gitignore .

El pensamiento detrás ts-node es maravilloso, realmente apesta cuando no puede manejar ejemplos aparentemente sencillos como este. Disculpas, la solución no usa ts-node, pero no pude hacer que funcionara.

over 4 years ago · Santiago Trujillo Relatório

0

No estoy seguro de si esto ayudará a alguien, pero lo arreglé poniendo esto al principio:

 #!/usr/bin/env node
over 4 years ago · Santiago Trujillo Relatório

0

Eliminando "type": "module" de package.json y agregando:

 "compilerOptions": { "module": "CommonJS" },

En tsconfig.json me arregló esto.

over 4 years ago · Santiago Trujillo Relatório

0

Seguí los consejos dados aquí. También tuve que desinstalar lodash-es e instalar lodash en su lugar para que funcionara.

over 4 years ago · Santiago Trujillo Relatório

0

utilizar

 node --loader ts-node/esm ./my-script.ts

en lugar de

 ts-node ./my-script.ts
over 4 years ago · Santiago Trujillo Relatório

0

Eliminar "type": "module" de paquete.json


https://github.com/TypeStrong/ts-node/issues/935


Si no desea eliminar "type": "module" (por ejemplo, si está usando declaraciones de import en su .ts que permite la inferencia de tipos de módulos), puede usar la siguiente opción en tsconfig.json :

 { "compilerOptions": { "esModuleInterop": true, } }

Y luego puede iniciar el servidor con la configuración usando ts-node .

Instalar en pc:

 npm install -g ts-node

Correr:

 ts-node my_server.ts
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda